home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / m68knommu / include / asm / cacheflush.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.5 KB  |  85 lines

  1. #ifndef _M68KNOMMU_CACHEFLUSH_H
  2. #define _M68KNOMMU_CACHEFLUSH_H
  3.  
  4. /*
  5.  * (C) Copyright 2000-2004, Greg Ungerer <gerg@snapgear.com>
  6.  */
  7. #include <linux/mm.h>
  8.  
  9. #define flush_cache_all()            __flush_cache_all()
  10. #define flush_cache_mm(mm)            do { } while (0)
  11. #define flush_cache_dup_mm(mm)            do { } while (0)
  12. #define flush_cache_range(vma, start, end)    __flush_cache_all()
  13. #define flush_cache_page(vma, vmaddr)        do { } while (0)
  14. #define flush_dcache_range(start,len)        __flush_cache_all()
  15. #define flush_dcache_page(page)            do { } while (0)
  16. #define flush_dcache_mmap_lock(mapping)        do { } while (0)
  17. #define flush_dcache_mmap_unlock(mapping)    do { } while (0)
  18. #define flush_icache_range(start,len)        __flush_cache_all()
  19. #define flush_icache_page(vma,pg)        do { } while (0)
  20. #define flush_icache_user_range(vma,pg,adr,len)    do { } while (0)
  21. #define flush_cache_vmap(start, end)        do { } while (0)
  22. #define flush_cache_vunmap(start, end)        do { } while (0)
  23.  
  24. #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
  25.     memcpy(dst, src, len)
  26. #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
  27.     memcpy(dst, src, len)
  28.  
  29. static inline void __flush_cache_all(void)
  30. {
  31. #ifdef CONFIG_M5407
  32.     /*
  33.      *    Use cpushl to push and invalidate all cache lines.
  34.      *    Gas doesn't seem to know how to generate the ColdFire
  35.      *    cpushl instruction... Oh well, bit stuff it for now.
  36.      */
  37.     __asm__ __volatile__ (
  38.         "nop\n\t"
  39.         "clrl    %%d0\n\t"
  40.         "1:\n\t"
  41.         "movel    %%d0,%%a0\n\t"
  42.         "2:\n\t"
  43.         ".word    0xf468\n\t"
  44.         "addl    #0x10,%%a0\n\t"
  45.         "cmpl    #0x00000800,%%a0\n\t"
  46.         "blt    2b\n\t"
  47.         "addql    #1,%%d0\n\t"
  48.         "cmpil    #4,%%d0\n\t"
  49.         "bne    1b\n\t"
  50.         "movel    #0xb6088500,%%d0\n\t"
  51.         "movec    %%d0,%%CACR\n\t"
  52.         : : : "d0", "a0" );
  53. #endif /* CONFIG_M5407 */
  54. #if defined(CONFIG_M527x) || defined(CONFIG_M528x)
  55.     __asm__ __volatile__ (
  56.         "movel    #0x81000200, %%d0\n\t"
  57.         "movec    %%d0, %%CACR\n\t"
  58.         "nop\n\t"
  59.         : : : "d0" );
  60. #endif /* CONFIG_M527x || CONFIG_M528x */
  61. #if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || defined(CONFIG_M5272)
  62.     __asm__ __volatile__ (
  63.         "movel    #0x81000100, %%d0\n\t"
  64.         "movec    %%d0, %%CACR\n\t"
  65.         "nop\n\t"
  66.         : : : "d0" );
  67. #endif /* CONFIG_M5206 || CONFIG_M5206e || CONFIG_M5272 */
  68. #ifdef CONFIG_M5249
  69.     __asm__ __volatile__ (
  70.         "movel    #0xa1000200, %%d0\n\t"
  71.         "movec    %%d0, %%CACR\n\t"
  72.         "nop\n\t"
  73.         : : : "d0" );
  74. #endif /* CONFIG_M5249 */
  75. #ifdef CONFIG_M532x
  76.     __asm__ __volatile__ (
  77.         "movel    #0x81000200, %%d0\n\t"
  78.         "movec    %%d0, %%CACR\n\t"
  79.         "nop\n\t"
  80.         : : : "d0" );
  81. #endif /* CONFIG_M532x */
  82. }
  83.  
  84. #endif /* _M68KNOMMU_CACHEFLUSH_H */
  85.